﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ShowDBPool
{
    /// <summary>
    /// 用于限定对象池中所保存的对象的基本行为
    /// </summary>
    public interface IDynamicObject
    {
        /// <summary>
        /// Create方法中，用户可以用来创建实际的对象，如建立数据库连接，并打开这个连接
        /// </summary>
        /// <param name="param"></param>
        void Create(Object param);

        /// <summary>
        /// GetInnerObject方法，使用户可以返回这个实际 的对象，如一个SqlConnection对象
        /// </summary>
        /// <returns></returns>
        Object GetInnerObject();

        /// <summary>
        /// IsValidate方法是用来判断用户自定义对象的有效性的，是对象池决定是否重新创建对象的标志
        /// </summary>
        /// <returns></returns>
        bool IsValidate();

        /// <summary>
        /// Release方法中，用户可以进行资源释放工作
        /// </summary>
        void Release();
    }
}
